www.gusucode.com > DB-Libray 操作SQLServer编程的VC++ 一例-源码程序 > DB-Libray 操作SQLServer编程的VC++ 一例-源码程序\code\PhManage\SalesManDlg.cpp
//Download by http://www.NewXing.com // SalesManDlg.cpp : implementation file // #include "stdafx.h" #include "PhysicM.h" #include "SalesManDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CSalesManDlg dialog CSalesManDlg::CSalesManDlg(CWnd* pParent /*=NULL*/) : CDialog(CSalesManDlg::IDD, pParent) { //{{AFX_DATA_INIT(CSalesManDlg) m_demo = _T(""); m_name = _T(""); //}}AFX_DATA_INIT } void CSalesManDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CSalesManDlg) DDX_Control(pDX, IDC_SALESMAN_LIST, m_List); DDX_Text(pDX, IDC_DEMO_EDIT, m_demo); DDX_Text(pDX, IDC_SALESMAN_NAME, m_name); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CSalesManDlg, CDialog) //{{AFX_MSG_MAP(CSalesManDlg) ON_BN_CLICKED(IDC_ADD_BUTTON, OnAddButton) ON_BN_CLICKED(IDC_DELETE_BUTTON,OnDelBtn) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CSalesManDlg message handlers BOOL CSalesManDlg::OnInitDialog() { CDialog::OnInitDialog(); m_List.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT); char *head[]={"序 号","销售人员名称","销售人员ID","备注"}; int i; for (i=0;i<4;i++) m_List.InsertColumn(i,head[i],LVCFMT_LEFT,100);//(i==1) ? 150 : 100,i); ImageList=new CImageList(); ImageList->Create(16,16,TRUE | ILC_COLOR32,2,0); ImageList->Add(AfxGetApp()->LoadIcon(IDI_ICONUSER)); ImageList->Add(AfxGetApp()->LoadIcon(IDR_MENUVIEW_TMPL)); m_List.SetImageList(ImageList,LVSIL_SMALL);// LVSIL_NORMAL); Init(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CSalesManDlg::Init() { DBLibrary DB(((CPhysicMApp *)AfxGetApp())->DBSession); try{ DB.Open("select salesman_id sid,salesman_name sn,demo dm from salesman order by salesman_id"); int id=0,no=0;; char pname[40]; memset(pname,0,40); while(!DB.isEof()) { sprintf(pname,"%03d",no+1); m_List.InsertItem(no,pname,0); DB.GetValue("sn",pname); m_List.SetItemText(no,1,(LPCTSTR)pname); id=DB.GetValue("sid"); sprintf(pname,"%03d",id); m_List.SetItemText(no,2,(LPCTSTR)pname); memset(pname,0,40); DB.GetValue("dm",pname); m_List.SetItemText(no,3,(LPCTSTR)pname); no++; DB.Next(); } }catch (DBErr &err) { char *str; int code; err.GetLastErr(code,&str); ((CPhysicMApp *)AfxGetApp())->pMainFrm->AddErr("%s(%d)",str,code); } catch (...) { ((CPhysicMApp *)AfxGetApp())->pMainFrm->AddErr("unknow err(%d)",-1); } } void CSalesManDlg::AddInfo(CString m_pname,CString m_dm) { DBLibrary DB(((CPhysicMApp *)AfxGetApp())->DBSession); int max_id=0; try{ DB.Open("select IDENT_CURRENT('salesman') did " " from INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='salesman' "); double id=0; DB.GetValue("did",&id); max_id=(int)id+1; DB.ExecSQL("INSERT INTO salesman (salesman_name,demo) " "VALUES('%s','%s')",m_pname,m_dm); ((CPhysicMApp *)AfxGetApp())->pMainFrm->AddLog("新增销售人员:%s",m_pname); char no[4]; int icount=m_List.GetItemCount(); memset(no,0,4); sprintf(no,"%03d",icount+1); m_List.InsertItem(m_List.GetItemCount(),no,0); m_List.SetItemText(icount,1,(LPCTSTR)m_pname); sprintf(no,"%03d",max_id); m_List.SetItemText(icount,2,(LPCTSTR)no); m_List.SetItemText(icount,3,(LPCTSTR)m_dm); } catch (DBErr &err) { char *str; int code; err.GetLastErr(code,&str); ((CPhysicMApp *)AfxGetApp())->pMainFrm->AddErr("%s(%d)",str,code); } catch(...) { ((CPhysicMApp *)AfxGetApp())->pMainFrm->AddErr("unknow err(%d)",-1); } } BOOL CSalesManDlg::DestroyWindow() { // TODO: Add your specialized code here and/or call the base class if (ImageList) delete ImageList; return CDialog::DestroyWindow(); } void CSalesManDlg::OnAddButton() { UpdateData(); m_name.TrimRight(); m_name.TrimLeft(); if(m_name.IsEmpty()) { ((CPhysicMApp *)AfxGetApp())->pMainFrm->AddErr("销售人员名称不能为空,请输入"); return; } AddInfo(m_name,m_demo); } void CSalesManDlg::OnOK() { // TODO: Add extra validation here // CDialog::OnOK(); } void CSalesManDlg::OnDelBtn() { ((CPhysicMApp *)AfxGetApp())->Delete("SalesMan","SalesMan_id",&m_List,2); }